package com.kaizeli.website.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kaizeli.website.pojo.entity.TravelExpense;
import com.kaizeli.website.pojo.dto.TravelExpenseDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 差旅费用Mapper接口
 */
@Mapper
public interface TravelExpenseMapper extends BaseMapper<TravelExpense> {

    /**
     * 根据验收节点ID查询差旅费用列表
     */
    List<TravelExpenseDTO> selectByAcceptanceId(@Param("acceptanceId") Long acceptanceId);

    /**
     * 根据员工ID查询差旅费用列表
     */
    List<TravelExpenseDTO> selectByEmployeeId(@Param("employeeId") Long employeeId);

    /**
     * 根据项目ID查询差旅费用列表
     */
    List<TravelExpenseDTO> selectByProjectId(@Param("projectId") Long projectId);

    /**
     * 计算验收节点总差旅费用
     */
    BigDecimal calculateTotalTravelExpense(@Param("acceptanceId") Long acceptanceId);

    /**
     * 更新差旅费用审核状态
     */
    int updateStatus(@Param("id") Long id, @Param("status") String status);
}
